package br.com.websec.titulo;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import br.com.websec.banco.Banco;
import br.com.websec.carteira.Carteira;
import br.com.websec.cliente.Cliente;
import br.com.websec.conta.Conta;
import br.com.websec.fornecedor.Fornecedor;

@Entity
@Table(name = "titulo")
public class Titulo {
	
	/*
	 * STATUS DO TITULO - Status de quitacao
	 */
	private static final Integer STATUS_EMABERTO = 0;
	private static final Integer STATUS_PAGO = 1;
	private static final Integer STATUS_CANCELADO = 2;
	private static final Integer STATUS_PAGOEMATRASO = 3;
	
	/*
	 * ESPECIE DO TITULO -
	 */
	private static final Integer DUPLICATA_MERCANTIL			= 1;
	private static final Integer NOTA_PROMISSORIA               = 2;
	private static final Integer NOTA_DE_SEGURO                 = 3;
	private static final Integer MENSALIDADE_ESCOLAR            = 4;
	private static final Integer RECIBO                         = 5;
	private static final Integer CONTRATO                       = 6;
	private static final Integer COSSEGUROS                     = 7;
	private static final Integer DUPLICATA_DE_SERVICO           = 8;
	private static final Integer LETRA_DE_CAMBIO                = 9;
	private static final Integer NOTA_DE_DEBITOS                = 13;
	private static final Integer DOCUMENTO_DE_DIVIDA            = 15;
	private static final Integer ENCARGOS_CONDOMINIAIS          = 16;
	private static final Integer CONTA_DE_PRESTACAO_DE_SERVICOS = 17;
	private static final Integer DIVERSOS                       = 99;
	
	private String status;
	
	private int especie;
	
	@Id
	@GeneratedValue
	private Integer idTitulo;
	
	@ManyToOne
	@JoinColumn(name = "idcliente",nullable = false)
	private Cliente cliente;
	
	@ManyToOne
	@JoinColumn(name = "idfornecedor",nullable = false)
	private Fornecedor fornecedor;
	
	@ManyToOne
	@JoinColumn(name = "idbanco",nullable = false)
	private Banco banco;
	
	@ManyToOne
	@JoinColumn(name = "idconta",nullable = false)
	private Conta conta;
	
	@ManyToOne
	@JoinColumn(name = "idcarteira",nullable = false)
	private Carteira carteira;
	
	@ManyToOne
	@JoinColumn(name = "idCabecalhoTitulo")
	private CabecalhoTitulo cabecalhoTitulo;
	
	private String ocorrencia;

	
	@Column(name = "serie",nullable = false)
	private String serie;
	
	@Column(name = "numero",nullable = false)
	private String identificacaoTituloEmpresa; 
	
	@Column(name = "parcela",nullable = false)
	private Integer parcela;
	
	@Column(name = "dtemissao",nullable = false)
	private Date dtEmissao;
	
	@Column(name = "dtvencimento",nullable = false)
	private Date dtVencimento;
	
	private Date dtPagamento;
	
	@Column(name = "dtvencimentoUtil",nullable = false)
	private Date dtVencimentoUtil;
	
	private Date dtprorrogacao;
	
	@Column(name = "valor",nullable = false)
	private BigDecimal valor;
	
	@Column(name = "valordesconto")
	private BigDecimal valorDesconto;
	
	@Column(name = "valordespesa")
	private BigDecimal valorDespesa;
	
	@Column(name = "valorjurosmulta")
	private BigDecimal valorjurosmulta;
	
	@Column(name = "valormora")
	private BigDecimal valorMora;
	
	@Column(name = "dtmora")
	private Date dtMora;
	
	@Column(name = "valorabatimento")
	private BigDecimal valorAbatimento;
	
	@Column(name = "valoracrescimo")
	private BigDecimal valorAcrescimo;
	
	@Column(name = "datadesconto")
	private Date dataDesconto;
		
	private char aceite;
	
	@Column(name = "numeroremessa")
	private int numeroRemessa;

	@Column(name = "dataremessa")
	private Date dataRemessa;

	@Column(name = "datacredito")
	private Date dataCredito;
	
	@Column(name = "dataliquidacao")
	private Date dataLiquidacao;

	@Column(name = "identificacaotitulo")
	private String identificacaoTitulo;

	@Column(name = "valorpercentualmulta")
	private BigDecimal valorPercentualMulta;
	
	@Column(name = "digitonossonumero")
	private String digitoNossoNumero; // banco envia

	@Column(name = "codigomovimento")
	private int codigoMovimento; //banco envia

	@Column(name = "documentocobranca")
	private String documentoCobranca; //checar

	@Column(name = "codigojuros")
	private int codigoJuros; //fixo

	@Column(name = "valorjurostaxa")
	private BigDecimal valorJurosTaxa;

	@Column(name = "valoriof")
	private BigDecimal valorIOF;

	@Column(name = "tipoinscricaocliente")
	private int tipoInscricaoCliente; // 01 fisica 02 juridica

	@Column(name = "codigorejeicoes")
	private String codigoRejeicoes;

	@Column(name = "valorabatimentocancelado")
	private BigDecimal valorAbatimentoCancelado;

	@Column(name = "valorpago")
	private BigDecimal valorPago;

	@Column(name = "valorliquidacaocredito")
	private BigDecimal valorLiquidacaoCredito;

	@Column(name = "valoroutrasdespesas")
	private BigDecimal valorOutrasDespesas;

	@Column(name = "valoroutroscreditos")
	private BigDecimal valorOutrosCreditos;

	@Column(name = "valorocorrenciasacado")
	private BigDecimal valorOcorrenciaSacado; /// fixo
	
	private Integer instrucoes;
	
	@Column(name = "outrasinstrucoes")
	private Integer outrasInstrucoes; // fixo 00
	
	@Column(name = "dtenviobanco")
	private Date dtEnvioBanco;
	
	private String mensagem1;
	
	private String mensagem2;
	
	
	
	public CabecalhoTitulo getCabecalhoTitulo() {
		return cabecalhoTitulo;
	}

	public void setCabecalhoTitulo(CabecalhoTitulo cabecalhoTitulo) {
		this.cabecalhoTitulo = cabecalhoTitulo;
	}

	public void setEspecie(int especie) {
		this.especie = especie;
	}

	public String getMensagem1() {
		return mensagem1;
	}

	public void setMensagem1(String mensagem1) {
		this.mensagem1 = mensagem1;
	}

	public String getMensagem2() {
		return mensagem2;
	}

	public void setMensagem2(String mensagem2) {
		this.mensagem2 = mensagem2;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public int getEspecie() {
		return especie;
	}

	public void setEspecie(Integer especie) {
		this.especie = especie;
	}


	public Integer getIdTitulo() {
		return idTitulo;
	}

	public void setIdTitulo(Integer idTitulo) {
		this.idTitulo = idTitulo;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Fornecedor getFornecedor() {
		return fornecedor;
	}

	public void setFornecedor(Fornecedor fornecedor) {
		this.fornecedor = fornecedor;
	}

	public Banco getBanco() {
		return banco;
	}

	public void setBanco(Banco banco) {
		this.banco = banco;
	}

	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	public Carteira getCarteira() {
		return carteira;
	}

	public void setCarteira(Carteira carteira) {
		this.carteira = carteira;
	}

	public String getOcorrencia() {
		return ocorrencia;
	}

	public void setOcorrencia(String ocorrencia) {
		this.ocorrencia = ocorrencia;
	}

	public String getSerie() {
		return serie;
	}

	public void setSerie(String serie) {
		this.serie = serie;
	}

	public String getIdentificacaoTituloEmpresa() {
		return identificacaoTituloEmpresa;
	}

	public void setIdentificacaoTituloEmpresa(String identificacaoTituloEmpresa) {
		this.identificacaoTituloEmpresa = identificacaoTituloEmpresa;
	}

	public Integer getParcela() {
		return parcela;
	}

	public void setParcela(Integer parcela) {
		this.parcela = parcela;
	}

	public Date getDtEmissao() {
		return dtEmissao;
	}

	public void setDtEmissao(Date dtEmissao) {
		this.dtEmissao = dtEmissao;
	}

	public Date getDtVencimento() {
		return dtVencimento;
	}

	public void setDtVencimento(Date dtVencimento) {
		this.dtVencimento = dtVencimento;
	}

	public Date getDtPagamento() {
		return dtPagamento;
	}

	public void setDtPagamento(Date dtPagamento) {
		this.dtPagamento = dtPagamento;
	}

	public Date getDtVencimentoUtil() {
		return dtVencimentoUtil;
	}

	public void setDtVencimentoUtil(Date dtVencimentoUtil) {
		this.dtVencimentoUtil = dtVencimentoUtil;
	}

	public Date getDtprorrogacao() {
		return dtprorrogacao;
	}

	public void setDtprorrogacao(Date dtprorrogacao) {
		this.dtprorrogacao = dtprorrogacao;
	}

	public BigDecimal getValor() {
		return valor;
	}

	public void setValor(BigDecimal valor) {
		this.valor = valor;
	}

	public BigDecimal getValorDesconto() {
		return valorDesconto;
	}

	public void setValorDesconto(BigDecimal valorDesconto) {
		this.valorDesconto = valorDesconto;
	}

	public BigDecimal getValorDespesa() {
		return valorDespesa;
	}

	public void setValorDespesa(BigDecimal valorDespesa) {
		this.valorDespesa = valorDespesa;
	}

	public BigDecimal getValorjurosmulta() {
		return valorjurosmulta;
	}

	public void setValorjurosmulta(BigDecimal valorjurosmulta) {
		this.valorjurosmulta = valorjurosmulta;
	}

	public BigDecimal getValorMora() {
		return valorMora;
	}

	public void setValorMora(BigDecimal valorMora) {
		this.valorMora = valorMora;
	}

	public Date getDtMora() {
		return dtMora;
	}

	public void setDtMora(Date dtMora) {
		this.dtMora = dtMora;
	}

	public BigDecimal getValorAbatimento() {
		return valorAbatimento;
	}

	public void setValorAbatimento(BigDecimal valorAbatimento) {
		this.valorAbatimento = valorAbatimento;
	}

	public BigDecimal getValorAcrescimo() {
		return valorAcrescimo;
	}

	public void setValorAcrescimo(BigDecimal valorAcrescimo) {
		this.valorAcrescimo = valorAcrescimo;
	}

	public Date getDataDesconto() {
		return dataDesconto;
	}

	public void setDataDesconto(Date dataDesconto) {
		this.dataDesconto = dataDesconto;
	}

	public char getAceite() {
		return aceite;
	}

	public void setAceite(char aceite) {
		this.aceite = aceite;
	}

	public int getNumeroRemessa() {
		return numeroRemessa;
	}

	public void setNumeroRemessa(int numeroRemessa) {
		this.numeroRemessa = numeroRemessa;
	}

	public Date getDataRemessa() {
		return dataRemessa;
	}

	public void setDataRemessa(Date dataRemessa) {
		this.dataRemessa = dataRemessa;
	}

	public Date getDataCredito() {
		return dataCredito;
	}

	public void setDataCredito(Date dataCredito) {
		this.dataCredito = dataCredito;
	}

	public Date getDataLiquidacao() {
		return dataLiquidacao;
	}

	public void setDataLiquidacao(Date dataLiquidacao) {
		this.dataLiquidacao = dataLiquidacao;
	}

	public String getIdentificacaoTitulo() {
		return identificacaoTitulo;
	}

	public void setIdentificacaoTitulo(String identificacaoTitulo) {
		this.identificacaoTitulo = identificacaoTitulo;
	}

	public BigDecimal getValorPercentualMulta() {
		return valorPercentualMulta;
	}

	public void setValorPercentualMulta(BigDecimal valorPercentualMulta) {
		this.valorPercentualMulta = valorPercentualMulta;
	}

	public String getDigitoNossoNumero() {
		return digitoNossoNumero;
	}

	public void setDigitoNossoNumero(String digitoNossoNumero) {
		this.digitoNossoNumero = digitoNossoNumero;
	}

	public int getCodigoMovimento() {
		return codigoMovimento;
	}

	public void setCodigoMovimento(int codigoMovimento) {
		this.codigoMovimento = codigoMovimento;
	}

	public String getDocumentoCobranca() {
		return documentoCobranca;
	}

	public void setDocumentoCobranca(String documentoCobranca) {
		this.documentoCobranca = documentoCobranca;
	}

	public int getCodigoJuros() {
		return codigoJuros;
	}

	public void setCodigoJuros(int codigoJuros) {
		this.codigoJuros = codigoJuros;
	}

	public BigDecimal getValorJurosTaxa() {
		return valorJurosTaxa;
	}

	public void setValorJurosTaxa(BigDecimal valorJurosTaxa) {
		this.valorJurosTaxa = valorJurosTaxa;
	}

	public BigDecimal getValorIOF() {
		return valorIOF;
	}

	public void setValorIOF(BigDecimal valorIOF) {
		this.valorIOF = valorIOF;
	}

	public int getTipoInscricaoCliente() {
		return tipoInscricaoCliente;
	}

	public void setTipoInscricaoCliente(int tipoInscricaoCliente) {
		this.tipoInscricaoCliente = tipoInscricaoCliente;
	}

	public String getCodigoRejeicoes() {
		return codigoRejeicoes;
	}

	public void setCodigoRejeicoes(String codigoRejeicoes) {
		this.codigoRejeicoes = codigoRejeicoes;
	}

	public BigDecimal getValorAbatimentoCancelado() {
		return valorAbatimentoCancelado;
	}

	public void setValorAbatimentoCancelado(BigDecimal valorAbatimentoCancelado) {
		this.valorAbatimentoCancelado = valorAbatimentoCancelado;
	}

	public BigDecimal getValorPago() {
		return valorPago;
	}

	public void setValorPago(BigDecimal valorPago) {
		this.valorPago = valorPago;
	}

	public BigDecimal getValorLiquidacaoCredito() {
		return valorLiquidacaoCredito;
	}

	public void setValorLiquidacaoCredito(BigDecimal valorLiquidacaoCredito) {
		this.valorLiquidacaoCredito = valorLiquidacaoCredito;
	}

	public BigDecimal getValorOutrasDespesas() {
		return valorOutrasDespesas;
	}

	public void setValorOutrasDespesas(BigDecimal valorOutrasDespesas) {
		this.valorOutrasDespesas = valorOutrasDespesas;
	}

	public BigDecimal getValorOutrosCreditos() {
		return valorOutrosCreditos;
	}

	public void setValorOutrosCreditos(BigDecimal valorOutrosCreditos) {
		this.valorOutrosCreditos = valorOutrosCreditos;
	}

	public BigDecimal getValorOcorrenciaSacado() {
		return valorOcorrenciaSacado;
	}

	public void setValorOcorrenciaSacado(BigDecimal valorOcorrenciaSacado) {
		this.valorOcorrenciaSacado = valorOcorrenciaSacado;
	}

	public Integer getInstrucoes() {
		return instrucoes;
	}

	public void setInstrucoes(Integer instrucoes) {
		this.instrucoes = instrucoes;
	}

	public Integer getOutrasInstrucoes() {
		return outrasInstrucoes;
	}

	public void setOutrasInstrucoes(Integer outrasInstrucoes) {
		this.outrasInstrucoes = outrasInstrucoes;
	}
	
	public Date getDtEnvioBanco() {
		return dtEnvioBanco;
	}

	public void setDtEnvioBanco(Date dtEnvioBanco) {
		this.dtEnvioBanco = dtEnvioBanco;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + aceite;
		result = prime * result + ((banco == null) ? 0 : banco.hashCode());
		result = prime * result
				+ ((carteira == null) ? 0 : carteira.hashCode());
		result = prime * result + ((cliente == null) ? 0 : cliente.hashCode());
		result = prime * result + codigoJuros;
		result = prime * result + codigoMovimento;
		result = prime * result
				+ ((codigoRejeicoes == null) ? 0 : codigoRejeicoes.hashCode());
		result = prime * result + ((conta == null) ? 0 : conta.hashCode());
		result = prime * result
				+ ((dataCredito == null) ? 0 : dataCredito.hashCode());
		result = prime * result
				+ ((dataDesconto == null) ? 0 : dataDesconto.hashCode());
		result = prime * result
				+ ((dataLiquidacao == null) ? 0 : dataLiquidacao.hashCode());
		result = prime * result
				+ ((dataRemessa == null) ? 0 : dataRemessa.hashCode());
		result = prime
				* result
				+ ((digitoNossoNumero == null) ? 0 : digitoNossoNumero
						.hashCode());
		result = prime
				* result
				+ ((documentoCobranca == null) ? 0 : documentoCobranca
						.hashCode());
		result = prime * result
				+ ((dtEmissao == null) ? 0 : dtEmissao.hashCode());
		result = prime * result
				+ ((dtEnvioBanco == null) ? 0 : dtEnvioBanco.hashCode());
		result = prime * result + ((dtMora == null) ? 0 : dtMora.hashCode());
		result = prime * result
				+ ((dtPagamento == null) ? 0 : dtPagamento.hashCode());
		result = prime * result
				+ ((dtVencimento == null) ? 0 : dtVencimento.hashCode());
		result = prime
				* result
				+ ((dtVencimentoUtil == null) ? 0 : dtVencimentoUtil.hashCode());
		result = prime * result
				+ ((dtprorrogacao == null) ? 0 : dtprorrogacao.hashCode());
		result = prime * result + especie;
		result = prime * result
				+ ((fornecedor == null) ? 0 : fornecedor.hashCode());
		result = prime * result
				+ ((idTitulo == null) ? 0 : idTitulo.hashCode());
		result = prime
				* result
				+ ((identificacaoTitulo == null) ? 0 : identificacaoTitulo
						.hashCode());
		result = prime
				* result
				+ ((identificacaoTituloEmpresa == null) ? 0
						: identificacaoTituloEmpresa.hashCode());
		result = prime * result
				+ ((instrucoes == null) ? 0 : instrucoes.hashCode());
		result = prime * result
				+ ((mensagem1 == null) ? 0 : mensagem1.hashCode());
		result = prime * result
				+ ((mensagem2 == null) ? 0 : mensagem2.hashCode());
		result = prime * result + numeroRemessa;
		result = prime * result
				+ ((ocorrencia == null) ? 0 : ocorrencia.hashCode());
		result = prime
				* result
				+ ((outrasInstrucoes == null) ? 0 : outrasInstrucoes.hashCode());
		result = prime * result + ((parcela == null) ? 0 : parcela.hashCode());
		result = prime * result + ((serie == null) ? 0 : serie.hashCode());
		result = prime * result + ((status == null) ? 0 : status.hashCode());
		result = prime * result + tipoInscricaoCliente;
		result = prime * result + ((valor == null) ? 0 : valor.hashCode());
		result = prime * result
				+ ((valorAbatimento == null) ? 0 : valorAbatimento.hashCode());
		result = prime
				* result
				+ ((valorAbatimentoCancelado == null) ? 0
						: valorAbatimentoCancelado.hashCode());
		result = prime * result
				+ ((valorAcrescimo == null) ? 0 : valorAcrescimo.hashCode());
		result = prime * result
				+ ((valorDesconto == null) ? 0 : valorDesconto.hashCode());
		result = prime * result
				+ ((valorDespesa == null) ? 0 : valorDespesa.hashCode());
		result = prime * result
				+ ((valorIOF == null) ? 0 : valorIOF.hashCode());
		result = prime * result
				+ ((valorJurosTaxa == null) ? 0 : valorJurosTaxa.hashCode());
		result = prime
				* result
				+ ((valorLiquidacaoCredito == null) ? 0
						: valorLiquidacaoCredito.hashCode());
		result = prime * result
				+ ((valorMora == null) ? 0 : valorMora.hashCode());
		result = prime
				* result
				+ ((valorOcorrenciaSacado == null) ? 0 : valorOcorrenciaSacado
						.hashCode());
		result = prime
				* result
				+ ((valorOutrasDespesas == null) ? 0 : valorOutrasDespesas
						.hashCode());
		result = prime
				* result
				+ ((valorOutrosCreditos == null) ? 0 : valorOutrosCreditos
						.hashCode());
		result = prime * result
				+ ((valorPago == null) ? 0 : valorPago.hashCode());
		result = prime
				* result
				+ ((valorPercentualMulta == null) ? 0 : valorPercentualMulta
						.hashCode());
		result = prime * result
				+ ((valorjurosmulta == null) ? 0 : valorjurosmulta.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Titulo other = (Titulo) obj;
		if (aceite != other.aceite)
			return false;
		if (banco == null) {
			if (other.banco != null)
				return false;
		} else if (!banco.equals(other.banco))
			return false;
		if (carteira == null) {
			if (other.carteira != null)
				return false;
		} else if (!carteira.equals(other.carteira))
			return false;
		if (cliente == null) {
			if (other.cliente != null)
				return false;
		} else if (!cliente.equals(other.cliente))
			return false;
		if (codigoJuros != other.codigoJuros)
			return false;
		if (codigoMovimento != other.codigoMovimento)
			return false;
		if (codigoRejeicoes == null) {
			if (other.codigoRejeicoes != null)
				return false;
		} else if (!codigoRejeicoes.equals(other.codigoRejeicoes))
			return false;
		if (conta == null) {
			if (other.conta != null)
				return false;
		} else if (!conta.equals(other.conta))
			return false;
		if (dataCredito == null) {
			if (other.dataCredito != null)
				return false;
		} else if (!dataCredito.equals(other.dataCredito))
			return false;
		if (dataDesconto == null) {
			if (other.dataDesconto != null)
				return false;
		} else if (!dataDesconto.equals(other.dataDesconto))
			return false;
		if (dataLiquidacao == null) {
			if (other.dataLiquidacao != null)
				return false;
		} else if (!dataLiquidacao.equals(other.dataLiquidacao))
			return false;
		if (dataRemessa == null) {
			if (other.dataRemessa != null)
				return false;
		} else if (!dataRemessa.equals(other.dataRemessa))
			return false;
		if (digitoNossoNumero == null) {
			if (other.digitoNossoNumero != null)
				return false;
		} else if (!digitoNossoNumero.equals(other.digitoNossoNumero))
			return false;
		if (documentoCobranca == null) {
			if (other.documentoCobranca != null)
				return false;
		} else if (!documentoCobranca.equals(other.documentoCobranca))
			return false;
		if (dtEmissao == null) {
			if (other.dtEmissao != null)
				return false;
		} else if (!dtEmissao.equals(other.dtEmissao))
			return false;
		if (dtEnvioBanco == null) {
			if (other.dtEnvioBanco != null)
				return false;
		} else if (!dtEnvioBanco.equals(other.dtEnvioBanco))
			return false;
		if (dtMora == null) {
			if (other.dtMora != null)
				return false;
		} else if (!dtMora.equals(other.dtMora))
			return false;
		if (dtPagamento == null) {
			if (other.dtPagamento != null)
				return false;
		} else if (!dtPagamento.equals(other.dtPagamento))
			return false;
		if (dtVencimento == null) {
			if (other.dtVencimento != null)
				return false;
		} else if (!dtVencimento.equals(other.dtVencimento))
			return false;
		if (dtVencimentoUtil == null) {
			if (other.dtVencimentoUtil != null)
				return false;
		} else if (!dtVencimentoUtil.equals(other.dtVencimentoUtil))
			return false;
		if (dtprorrogacao == null) {
			if (other.dtprorrogacao != null)
				return false;
		} else if (!dtprorrogacao.equals(other.dtprorrogacao))
			return false;
		if (especie != other.especie)
			return false;
		if (fornecedor == null) {
			if (other.fornecedor != null)
				return false;
		} else if (!fornecedor.equals(other.fornecedor))
			return false;
		if (idTitulo == null) {
			if (other.idTitulo != null)
				return false;
		} else if (!idTitulo.equals(other.idTitulo))
			return false;
		if (identificacaoTitulo == null) {
			if (other.identificacaoTitulo != null)
				return false;
		} else if (!identificacaoTitulo.equals(other.identificacaoTitulo))
			return false;
		if (identificacaoTituloEmpresa == null) {
			if (other.identificacaoTituloEmpresa != null)
				return false;
		} else if (!identificacaoTituloEmpresa
				.equals(other.identificacaoTituloEmpresa))
			return false;
		if (instrucoes == null) {
			if (other.instrucoes != null)
				return false;
		} else if (!instrucoes.equals(other.instrucoes))
			return false;
		if (mensagem1 == null) {
			if (other.mensagem1 != null)
				return false;
		} else if (!mensagem1.equals(other.mensagem1))
			return false;
		if (mensagem2 == null) {
			if (other.mensagem2 != null)
				return false;
		} else if (!mensagem2.equals(other.mensagem2))
			return false;
		if (numeroRemessa != other.numeroRemessa)
			return false;
		if (ocorrencia == null) {
			if (other.ocorrencia != null)
				return false;
		} else if (!ocorrencia.equals(other.ocorrencia))
			return false;
		if (outrasInstrucoes == null) {
			if (other.outrasInstrucoes != null)
				return false;
		} else if (!outrasInstrucoes.equals(other.outrasInstrucoes))
			return false;
		if (parcela == null) {
			if (other.parcela != null)
				return false;
		} else if (!parcela.equals(other.parcela))
			return false;
		if (serie == null) {
			if (other.serie != null)
				return false;
		} else if (!serie.equals(other.serie))
			return false;
		if (status == null) {
			if (other.status != null)
				return false;
		} else if (!status.equals(other.status))
			return false;
		if (tipoInscricaoCliente != other.tipoInscricaoCliente)
			return false;
		if (valor == null) {
			if (other.valor != null)
				return false;
		} else if (!valor.equals(other.valor))
			return false;
		if (valorAbatimento == null) {
			if (other.valorAbatimento != null)
				return false;
		} else if (!valorAbatimento.equals(other.valorAbatimento))
			return false;
		if (valorAbatimentoCancelado == null) {
			if (other.valorAbatimentoCancelado != null)
				return false;
		} else if (!valorAbatimentoCancelado
				.equals(other.valorAbatimentoCancelado))
			return false;
		if (valorAcrescimo == null) {
			if (other.valorAcrescimo != null)
				return false;
		} else if (!valorAcrescimo.equals(other.valorAcrescimo))
			return false;
		if (valorDesconto == null) {
			if (other.valorDesconto != null)
				return false;
		} else if (!valorDesconto.equals(other.valorDesconto))
			return false;
		if (valorDespesa == null) {
			if (other.valorDespesa != null)
				return false;
		} else if (!valorDespesa.equals(other.valorDespesa))
			return false;
		if (valorIOF == null) {
			if (other.valorIOF != null)
				return false;
		} else if (!valorIOF.equals(other.valorIOF))
			return false;
		if (valorJurosTaxa == null) {
			if (other.valorJurosTaxa != null)
				return false;
		} else if (!valorJurosTaxa.equals(other.valorJurosTaxa))
			return false;
		if (valorLiquidacaoCredito == null) {
			if (other.valorLiquidacaoCredito != null)
				return false;
		} else if (!valorLiquidacaoCredito.equals(other.valorLiquidacaoCredito))
			return false;
		if (valorMora == null) {
			if (other.valorMora != null)
				return false;
		} else if (!valorMora.equals(other.valorMora))
			return false;
		if (valorOcorrenciaSacado == null) {
			if (other.valorOcorrenciaSacado != null)
				return false;
		} else if (!valorOcorrenciaSacado.equals(other.valorOcorrenciaSacado))
			return false;
		if (valorOutrasDespesas == null) {
			if (other.valorOutrasDespesas != null)
				return false;
		} else if (!valorOutrasDespesas.equals(other.valorOutrasDespesas))
			return false;
		if (valorOutrosCreditos == null) {
			if (other.valorOutrosCreditos != null)
				return false;
		} else if (!valorOutrosCreditos.equals(other.valorOutrosCreditos))
			return false;
		if (valorPago == null) {
			if (other.valorPago != null)
				return false;
		} else if (!valorPago.equals(other.valorPago))
			return false;
		if (valorPercentualMulta == null) {
			if (other.valorPercentualMulta != null)
				return false;
		} else if (!valorPercentualMulta.equals(other.valorPercentualMulta))
			return false;
		if (valorjurosmulta == null) {
			if (other.valorjurosmulta != null)
				return false;
		} else if (!valorjurosmulta.equals(other.valorjurosmulta))
			return false;
		return true;
	}

}
